/pre's*-dens los'*j/ A misunderstanding of operator precedence resulting in unintended grouping of arithmetic or logical
operators when coding an
expression. Used especially of mistakes in
C code due to the nonintuitively low precedence of "&", "|", "^", ">". For example, the following C expression, intended to test the least significant bit of x,
x & 1 == 0
is parsed as
x & (1 == 0)
which is always zero (false).
Some lazy programmers ignore precedence and parenthesise everything.
Lisp fans enjoy pointing out that this can't happen in *their* favourite language, which eschews precedence entirely, requiring one to use explicit parentheses everywhere.
[
Jargon File]
(1994-12-16)